FIG. 1 illustrates the usual method of controlling the speed of an internal combustion engine. The control is carried out in a main control module 1 responsible for the speed control of the whole engine. The main control module calculates the total fuel requirement of the engine. The total fuel requirement data is sent to cylinder control modules 2. The cylinder control module sets the duration of fuel injection for the cylinders being controlled by the module. As can be seen from the figure, the speed of the shaft 3 of the internal combustion engine is measured by means of a speed sensor 4. Using the design of FIG. 1 the amount of fuel received by the cylinders of the engine can be controlled so that all cylinders receive approximately the same amount of fuel and thus they also evenly share the load of the engine.
FIG. 2 illustrates a situation in which there is a problem in the data communication between the main control module 1 and the cylinder control modules 2. In this case data of the engine 14 total fuel requirement cannot be transferred to the cylinder control modules. If the engine speed data were transferred directly to each cylinder control module, cylinder control module specific connections to the speed sensor would be necessary. FIG. 2 illustrates another speed sensor 5 and the connections between it and the cylinder control modules for exemplifying such a design. However, the problem is that now it is not possible to make sure that each cylinder gets approximately the same amount of fuel. Even though the cylinder control modules use the same speed reference, they are independent and they do not communicate together. As the speed measurement data can vary between cylinders and the cylinder control modules are not synchronized, the amount of fed fuel starts to fluctuate between the cylinder control modules. The end result is that some cylinders bear the whole load of the engine, i.e. a large amount of fuel is introduced thereto, while other cylinders are not fed fuel at all. Thus, some cylinders can be overloaded, which can cause engine damage.